﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//class A
//{
//public:
//	explicit A(int a1)
//		:_a1(a1)
//	{}
//	A(int a1, int a2)
//		:_a1(a1)
//		, _a2(a2)
//	{}
//	void Print()
//	{
//		cout << _a1 << " " << _a2 << endl;
//	}
//private:
//	int _a1;
//	int _a2;
//};
//
//int main()
//{
//	A aa2 = 1;
//	aa2.Print();
//
//
//
//	// C++11中 多参数支持以下的写法
//	A aa1 = { 1,2 };
//	
//	return 0;
//}

//class A
//{
//public:
//	// 构造函数explicit就不再⽀持隐式类型转换 
//	// explicit A(int a1)
//	A(int a1)
//		:_a1(a1)
//	{}
//	//explicit A(int a1, int a2)
//	A(int a1, int a2)
//		:_a1(a1)
//		, _a2(a2)
//	{}
//	void Print()
//	{
//		cout << _a1 << " " << _a2 << endl;
//	}
//private:
//	int _a1 = 1;
//	int _a2 = 2;
//};

#include<iostream>
using namespace std;
class A
{
public:
	A()
	{
		++_scount;
	}
	A(const A& t)
	{
		++_scount;
	}
	~A()
	{
		--_scount;
	}
	static int GetACount()
	{
		return _scount;
	}
	void Func()
	{
		cout << _scount;
	}
private:
	// 类里面声明 
	static int _scount;
};
// 在类外初始化
int A::_scount = 0;
int main()
{
	cout << A::GetACount() << endl;
	A a;
	A a1, a2;
	{
		A a3(a1);
		cout << A::GetACount() << endl;
	}
	cout << A::GetACount();
	return 0;
}

